/*
 * This class define each report type that can be included in the process.
 * There are:
 *  - filme3D	field	<mesh_position>
 *	- filme2D	field	directon    <mesh_position>     <mesh_position>
 *	- Area      field   x0  x1  y0  y1  z0  z1  <time_step_to_get_frame>
 *	- AreaFFT	field   x0  x1  y0  y1  z0  z1  <time_step_to_get_frame>
 *	- fft2d     field   <mesh_position> <mesh_position> <mesh_position>
 *  - tempo     field   <mesh_position> <mesh_position> <mesh_position>
 *	- tempoSAR  field   <mesh_position> <mesh_position> <mesh_position>
 *	- AreSAR	field   x0  x1  y0  y1  z0  z1  <time_step_to_get_frame>
 * 
 */

package br.com.cpqd.ssar.utilitarias;

import java.util.Vector;

/**
 *
 * @author Carlos Henrique da Silva Santos
 */
public class RelatorioPosProcessamento {
    
    /**
     * ID 
     */
   private int id;
   
   /**
    * ID do Tipo de Relatorio na BoxSelection
    */
   private int idTipoRelatorio;

   /*
    * FDTD Type Name
    */
   private String tipo;
   
    /**
     * Name of the Type into the Selected Box
     */
    private String campo;
    
    /**
     * Direction of the field
     */
    private String direcao;
       
    /**
     * Vector of parameters to be used by each report
     */
    private Vector parametros;

    /**
     * Direcao do relatorio de opcao Movie2D
     */
    private String direcaoOpcao;

    /**
     * Enderedo Base de onde todos os Relatorios de Saida serao gerados
     */
    private String enderecoBaseRelatorios;


    public String getDirecaoOpcao() {
        return direcaoOpcao;
    }

    public void setDirecaoOpcao(String direcaoOpcao) {
        this.direcaoOpcao = direcaoOpcao;
    }
    
    
    public String getDirecao() {
        return direcao;
    }

    public void setDirecao(String direcao) {
        this.direcao = direcao;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }
    
    public int getIdTipoRelatorio() {
        return idTipoRelatorio;
    }

    public void setIdTipoRelatorio(int idBox) {
        this.idTipoRelatorio = idBox;
    }  
   
    
    public String getCampo() {
        return campo;
    }

    public void setCampo(String campo) {
        this.campo = campo;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Vector getParametros() {
        return parametros;
    }

    public void setParametros(Vector parametros) {
        this.parametros = parametros;
    }

    public String getNomeTipoRelatorio() {
        return tipo;
    }

    public void setNomeTipoRelatorio(String tipo) {
        this.tipo = tipo;
    } 
    
        
    /**
     * Nome do objeto para aparecer na lista
     * @return String
     */
    @Override
    public String toString() {
        return this.tipo;
    }

    public String getEnderecoBaseRelatorios() {
        return enderecoBaseRelatorios;
    }

    public void setEnderecoBaseRelatorios(String endereBaseRelatorios) {
        this.enderecoBaseRelatorios = endereBaseRelatorios;
    }

    public String getNomeArquivoRelatorio() {
        return configurarNomeArquivoRelatorio();
    }

    private String configurarNomeArquivoRelatorio(){
        String nome = new String();
        int valorinteiro;
        double valordouble;
        int cont;
        tipo = tipo.trim();
        if (tipo.equals("Area")){
            nome = (enderecoBaseRelatorios  + "_report_area_TIME_"+campo+direcao);
            for (cont=0; cont < 6; cont++) {
                    valordouble =  Double.valueOf(parametros.get(cont).toString());
                    valorinteiro = (int) valordouble;
                    nome = (nome+"_"+valorinteiro);
            }
            nome = (nome + ".ssar");
        }
        else if (tipo.equals("AreaFFT")){
            nome = (enderecoBaseRelatorios +"_report_area_FFT_time_"+campo+direcao);
            for (cont=0; cont < 6; cont++) {
                    valordouble =  Double.valueOf(parametros.get(cont).toString());
                    valorinteiro = (int) valordouble;
                    nome = (nome+"_"+valorinteiro);
            }
            nome = (nome + ".ssar");
        }
        else if (tipo.equals("AreaSAR")){
            nome = (enderecoBaseRelatorios+ "_report_area_SAR_"+campo+direcao);
            for (cont=0; cont < 6; cont++) {
                    valordouble =  Double.valueOf(parametros.get(cont).toString());
                    valorinteiro = (int) valordouble;
                    nome = (nome+"_"+valorinteiro);
            }
            nome = (nome + ".ssar");
        }
        else if (tipo.equals("fft2d")){
            nome = (enderecoBaseRelatorios+"_report_frequency_fft_"+campo+direcao);
            for (cont=0; cont < 3; cont++) {
                    valordouble =  Double.valueOf(parametros.get(cont).toString());
                    valorinteiro = (int) valordouble;
                    nome = (nome+"_"+valorinteiro);
            }
            nome = (nome + ".ssar");
        }

        else if (tipo.equals("filme2D")){
          //  nome = (enderecoBaseRelatorios+ "_report_movie2d_"+campo+direcao+"_"+ direcaoOpcao);
            nome = (enderecoBaseRelatorios+ "_report_movie2d_"+campo+direcao);
            for (cont=0; cont < 1; cont++) {
                    valordouble =  Double.valueOf(parametros.get(cont).toString());
                    valorinteiro = (int) valordouble;
                    nome = (nome+"_"+valorinteiro);
            }
            nome = (nome + ".ssar");
        }

        else if (tipo.equals("filme3D")){
            nome = (enderecoBaseRelatorios+ "_report_movie3d_"+campo+direcao
                    + ".ssar");
        }

        else if (tipo.equals("tempo")){
            nome = (enderecoBaseRelatorios +"_report_time_"+campo+direcao);
            for (cont=0; cont < 3; cont++) {
                    valordouble =  Double.valueOf(parametros.get(cont).toString());
                    valorinteiro = (int) valordouble;
                    nome = (nome+"_"+valorinteiro);
            }
            nome = (nome + ".ssar");
        }
        
        else if (tipo.equals("tempoSAR")){
            nome = (enderecoBaseRelatorios+"_report_SAR_"+campo+direcao+"_"
                    + Integer.valueOf(parametros.get(0).toString()) + "_" + Integer.valueOf(parametros.get(1).toString())
                    + ".ssar");
        }
        
        return  nome;
    }

}
